fetch()がReadableStreamをアップロードできるかの判定 - fetch streaming upload
判定方法
以下のようにしてこの機能に対応しているブラウザかどうか判定できる。
code:js
const supportsRequestStreams = !new Request('', {
body: new ReadableStream(),
method: 'POST',
}).headers.has('Content-Type');
上記はReadableStreamのアップロードに非対応だと、"[object ReadableStream]"がアップロードされてしまうことを利用している様子。その結果おそらくContent-Type: text/plain ...がつく仕様になっているのだと思う。
Safariにおける問題
MacのSafari: Version 13.1.2 (14609.3.5.1.5)
iOSのSafari: 14.0.1